package edu.ustb.mis.dm.model.attributes.interfaces;

/**
 * 属性集的基础接口，所有类型属性集都要从此接口进行扩展
 * 
 * @author saya
 * @version 0.1 <K,V>： K为属性索引类型 V为属性值类型
 */
public interface Attributes<K, V> {
	/**
	 * 将指定编号属性状态置为指定的值。
	 */
	boolean add(K index, V value);

	/**
	 * 清空属性集
	 */
	boolean clear();

	/**
	 * 返回指定序号的属性的值
	 */
	V get(K index);

	/**
	 * 如果此 Attributes 中没有包含任何设置为 true 的属性，则返回 ture。
	 */
	boolean isEmpty();

	/**
	 * 删除指定属性
	 */
	boolean remove(K index);

	/**
	 * 返回此 Attributes 实际属性数目。
	 */
	int size();
}
